package reflect.class1;

import java.lang.reflect.Field;

public class Test {
    public static void main(String[] args) throws Exception {
        //通过一个Class对象来操作Person.class类文件
        Class clazz = Class.
                forName("reflect.class1.Person");
        Person p = (Person) clazz.newInstance();
        // 通过clazz来获取类中的属性
        //获取name名字
        Field f = clazz.getDeclaredField("name");
        System.out.println(f.getName());
        f.setAccessible(true);//表示私有属性可以直接被操作
        f.set(p, "杨显耀");
        String value = (String) f.get(p);
        System.out.println(value);

        Field[] fileds = clazz.getFields();
        System.out.println(fileds.length);
        Field nameField = clazz.getField("age");//知道属性名字是什么  属性是公有的
        //赋值
        nameField.set(p, 18);
        //取值
        String age = (String) nameField.get(p);
        System.out.println(age);


    }
}
